home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 46 / Amiga Format CD46 (1999-10-20)(Future Publishing)(GB)[!][issue 1999-12].iso / -in_the_mag- / reader_requests / scilab / tests / polops.tst < prev    next >
Text File  |  1999-09-16  |  25KB  |  689 lines

  1. mode(5)
  2. s=poly(0,'s');
  3. //polynomial operations
  4. p1=1+1.5*s;
  5. if p1<>poly([1 1.5],'s','c') then pause,end
  6. p2=p1*p1;
  7. if norm(coeff(p2-poly([1 3 2.25],'s','c')))>10*%eps then pause,end
  8. if norm(coeff(4*p2-poly([4 12 9],'s','c')))>10*%eps then pause,end
  9. if norm(coeff(p2*4-poly([4 12 9],'s','c')))>10*%eps then pause,end
  10. p2=p2*4;
  11. if norm(coeff(p2/4-poly([1 3 2.25],'s','c')))>10*%eps then pause,end
  12. if norm(coeff(4\p2-poly([1 3 2.25],'s','c')))>10*%eps then pause,end
  13. p2=p2/4;
  14. if norm(coeff((p2-1)-poly([0 3 2.25],'s','c')))>10*%eps then pause,end
  15. if norm(coeff((1-p2)-poly([0 -3 -2.25],'s','c')))>10*%eps then pause,end
  16. if norm(coeff(p2-p2))>10*%eps then pause,end
  17. //complex
  18. p1=1+1.5*s+0*%i;
  19. if norm(coeff(p1-poly([1 1.5],'s','c')))>10*%eps then pause,end
  20. p2=p1*p1;
  21. if norm(coeff(p2-poly([1 3 2.25],'s','c')))>10*%eps then pause,end
  22. if norm(coeff(4*p2-poly([4 12 9],'s','c')))>10*%eps then pause,end
  23. if norm(coeff(p2*4-poly([4 12 9],'s','c')))>10*%eps then pause,end
  24. if norm(coeff((4+0*%i)*p2-poly([4 12 9],'s','c')))>10*%eps then pause,end
  25. if norm(coeff(p2*(4+0*%i)-poly([4 12 9],'s','c')))>10*%eps then pause,end
  26. p2=p2*4;
  27. if norm(coeff(p2/4-poly([1 3 2.25],'s','c')))>10*%eps then pause,end
  28. if norm(coeff(4\p2-poly([1 3 2.25],'s','c')))>10*%eps then pause,end
  29. if norm(coeff(p2/(4+0*%i)-poly([1 3 2.25],'s','c')))>10*%eps then pause,end
  30. if norm(coeff((4+0*%i)\p2-poly([1 3 2.25],'s','c')))>10*%eps then pause,end
  31. p2=p2/4;
  32. if norm(coeff((p2-1)-poly([0 3 2.25],'s','c')))>10*%eps then pause,end
  33. if norm(coeff((1-p2)-poly([0 -3 -2.25],'s','c')))>10*%eps then pause,end
  34. if norm(coeff((p2-(1+0*%i))-poly([0 3 2.25],'s','c')))>10*%eps then pause,end
  35. if norm(coeff(((1+0*%i)-p2)-poly([0 -3 -2.25],'s','c')))>10*%eps then pause,end
  36. //
  37. if norm(coeff(p2-p2))>10*%eps then pause,end
  38. //
  39. //concatenations  extraction
  40. p1=1+1.5*s;p2=1;
  41. p3=[p1 p2];
  42. if norm(coeff(p3(1)-p1))>%eps then pause,end
  43. if norm(coeff(p3(2)-p2))>%eps then pause,end
  44. if norm(coeff(p3(1:2)-p3))>%eps then pause,end
  45. if norm(coeff(p3([2 1])-[p2 p1]))>%eps then pause,end
  46. p2=p1+4*s**2;
  47. p3=[p1 p2];
  48. if norm(coeff(p3(1)-p1))>%eps then pause,end
  49. if norm(coeff(p3(2)-p2))>%eps then pause,end
  50. if norm(coeff(p3(1:2)-p3))>%eps then pause,end
  51. if norm(coeff(p3([2 1])-[p2 p1]))>%eps then pause,end
  52. //en colonne
  53. p1=1+1.5*s;p2=1;
  54. p3=[p1;p2];
  55. if norm(coeff(p3(1)-p1))>%eps then pause,end
  56. if norm(coeff(p3(2)-p2))>%eps then pause,end
  57. if norm(coeff(p3(1:2)-p3))>%eps then pause,end
  58. if norm(coeff(p3([2 1])-[p2;p1]))>%eps then pause,end
  59. p2=p1+4*s**2;
  60. p3=[p1;p2];
  61. if norm(coeff(p3(1)-p1))>%eps then pause,end
  62. if norm(coeff(p3(2)-p2))>%eps then pause,end
  63. if norm(coeff(p3(1:2)-p3))>%eps then pause,end
  64. if norm(coeff(p3([2 1])-[p2;p1]))>%eps then pause,end
  65. //
  66. p1=1+1.5*s;p2=1+%i;
  67. p3=[p1 p2];
  68. if norm(coeff(p3(1)-p1))>%eps then pause,end
  69. if norm(coeff(p3(2)-p2))>%eps then pause,end
  70. if norm(coeff(p3(1:2)-p3))>%eps then pause,end
  71. if norm(coeff(p3([2 1])-[p2 p1]))>%eps then pause,end
  72. p2=p1+4*s**2+%i;
  73. p3=[p1 p2];
  74. if norm(coeff(p3(1)-p1))>%eps then pause,end
  75. if norm(coeff(p3(2)-p2))>%eps then pause,end
  76. if norm(coeff(p3(1:2)-p3))>%eps then pause,end
  77. if norm(coeff(p3([2 1])-[p2 p1]))>%eps then pause,end
  78. //en colonne
  79. p1=1+1.5*s;p2=1+%i;
  80. p3=[p1;p2];
  81. if norm(coeff(p3(1)-p1))>%eps then pause,end
  82. if norm(coeff(p3(2)-p2))>%eps then pause,end
  83. if norm(coeff(p3(1:2)-p3))>%eps then pause,end
  84. if norm(coeff(p3([2 1])-[p2;p1]))>%eps then pause,end
  85. p2=p1+4*s**2+%i;
  86. p3=[p1;p2];
  87. if norm(coeff(p3(1)-p1))>%eps then pause,end
  88. if norm(coeff(p3(2)-p2))>%eps then pause,end
  89. if norm(coeff(p3(1:2)-p3))>%eps then pause,end
  90. if norm(coeff(p3([2 1])-[p2;p1]))>%eps then pause,end
  91. // complex reel
  92. //en ligne
  93. p1=1+1.5*s+%i;p2=1;
  94. p3=[p1 p2];
  95. if norm(coeff(p3(1)-p1))>%eps then pause,end
  96. if norm(coeff(p3(2)-p2))>%eps then pause,end
  97. if norm(coeff(p3(1:2)-p3))>%eps then pause,end
  98. if norm(coeff(p3([2 1])-[p2 p1]))>%eps then pause,end
  99. p2=p1+4*s**2;
  100. p3=[p1 p2];
  101. if norm(coeff(p3(1)-p1))>%eps then pause,end
  102. if norm(coeff(p3(2)-p2))>%eps then pause,end
  103. if norm(coeff(p3(1:2)-p3))>%eps then pause,end
  104. if norm(coeff(p3([2 1])-[p2 p1]))>%eps then pause,end
  105. //en colonne
  106. p1=1+1.5*s+%i;p2=1;
  107. p3=[p1;p2];
  108. if norm(coeff(p3(1)-p1))>%eps then pause,end
  109. if norm(coeff(p3(2)-p2))>%eps then pause,end
  110. if norm(coeff(p3(1:2)-p3))>%eps then pause,end
  111. if norm(coeff(p3([2 1])-[p2;p1]))>%eps then pause,end
  112. p2=p1+4*s**2;
  113. p3=[p1;p2];
  114. if norm(coeff(p3(1)-p1))>%eps then pause,end
  115. if norm(coeff(p3(2)-p2))>%eps then pause,end
  116. if norm(coeff(p3(1:2)-p3))>%eps then pause,end
  117. if norm(coeff(p3([2 1])-[p2;p1]))>%eps then pause,end
  118. //complex complex
  119. //en ligne
  120. p1=1+1.5*s+%i;p2=1+%i;
  121. p3=[p1 p2];
  122. if norm(coeff(p3(1)-p1))>%eps then pause,end
  123. if norm(coeff(p3(2)-p2))>%eps then pause,end
  124. if norm(coeff(p3(1:2)-p3))>%eps then pause,end
  125. if norm(coeff(p3([2 1])-[p2 p1]))>%eps then pause,end
  126. p2=p1+4*s**2+%i;
  127. p3=[p1 p2];
  128. if norm(coeff(p3(1)-p1))>%eps then pause,end
  129. if norm(coeff(p3(2)-p2))>%eps then pause,end
  130. if norm(coeff(p3(1:2)-p3))>%eps then pause,end
  131. if norm(coeff(p3([2 1])-[p2 p1]))>%eps then pause,end
  132. //en colonne
  133. p1=1+1.5*s+%i;p2=1+%i;
  134. p3=[p1;p2];
  135. if norm(coeff(p3(1)-p1))>%eps then pause,end
  136. if norm(coeff(p3(2)-p2))>%eps then pause,end
  137. if norm(coeff(p3(1:2)-p3))>%eps then pause,end
  138. if norm(coeff(p3([2 1])-[p2;p1]))>%eps then pause,end
  139. p2=p1+4*s**2+%i;
  140. p3=[p1;p2];
  141. if norm(coeff(p3(1)-p1))>%eps then pause,end
  142. if norm(coeff(p3(2)-p2))>%eps then pause,end
  143. if norm(coeff(p3(1:2)-p3))>%eps then pause,end
  144. if norm(coeff(p3([2 1])-[p2;p1]))>%eps then pause,end
  145. //
  146. //                real real
  147. //
  148. p1=[1+1.5*s;s**2];
  149. //
  150. if norm(coeff(p1'-[p1(1),p1(2)]))>10*%eps then pause,end
  151. if norm(coeff((-p1)+p1))>10*%eps then pause,end
  152. if norm(coeff((-p1')+p1'))>10*%eps then pause,end
  153. // 
  154. x=[1+s**3; 4];
  155. p3=p1(1)*x(1)+p1(2)*x(2);
  156. if norm(coeff(p1'*x-p3))>10*%eps then pause,end
  157. p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)];
  158. if norm(coeff(p1*x'-p3))>10*%eps then pause,end
  159. //
  160. x=[1.5;1/3];
  161. p3=p1(1)*x(1)+p1(2)*x(2);
  162. if norm(coeff(p1'*x-p3))>10*%eps then pause,end
  163. if norm(coeff(x'*p1-p3))>10*%eps then pause,end
  164. p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)];
  165. if norm(coeff(p1*x'-p3))>10*%eps then pause,end
  166. if norm(coeff(x*p1'-p3'))>10*%eps then pause,end
  167. //
  168. x=4;
  169. if norm(coeff(x*p1-[x*p1(1);x*p1(2)]))>10*%eps then pause,end
  170. if norm(coeff(p1*x-[x*p1(1);x*p1(2)]))>10*%eps then pause,end
  171. if norm(coeff(x*p1'-[x*p1(1),x*p1(2)]))>10*%eps then pause,end
  172. if norm(coeff(p1'*x-[x*p1(1),x*p1(2)]))>10*%eps then pause,end
  173. //
  174. x=[1+s**3; 4];
  175. p3=[p1(1)*x(1);p1(2)*x(2)];
  176. if norm(coeff(p1.*x-p3))>10*%eps then pause,end
  177. x=[1.5;1/3];
  178. p3=[p1(1)*x(1);p1(2)*x(2)];
  179. if norm(coeff(p1.*x-p3))>10*%eps then pause,end
  180. if norm(coeff(x.*p1-p3))>10*%eps then pause,end
  181. x=[1+s**3,4];
  182. p3=[p1(1)*x(1),p1(2)*x(2)];
  183. if norm(coeff(p1'.*x-p3))>10*%eps then pause,end
  184. x=[1.5,1/3];
  185. p3=[p1(1)*x(1),p1(2)*x(2)];
  186. if norm(coeff(p1'.*x-p3))>10*%eps then pause,end
  187. if norm(coeff(x.*p1'-p3))>10*%eps then pause,end
  188.  
  189. // matrices
  190. p1=[1+1.5*s,s**2, 0;1 s s+1];
  191. //
  192. if norm(coeff((-p1)+p1))>10*%eps then pause,end
  193. //
  194. x=[1,s;-1,2*s;2,0];
  195. p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),...
  196.         p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2);
  197.     p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),...
  198.         p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)];
  199. if norm(coeff(p1*x-p3))>10*%eps then pause,end
  200. //
  201. x=[1 1.5;2 1/3;sqrt(7) 8];
  202. p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),...
  203.         p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2);
  204.     p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),...
  205.         p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)];
  206. if norm(coeff(p1*x-p3))>10*%eps then pause,end
  207. //
  208. x=5;
  209. p3=[x*p1(1,1),x*p1(1,2),x*p1(1,3);
  210.     x*p1(2,1),x*p1(2,2),x*p1(2,3)];
  211.  
  212. if norm(coeff(p1*x-p3))>10*%eps then pause,end
  213. if norm(coeff(x*p1-p3))>10*%eps then pause,end
  214.  
  215. //
  216. x=[1+s**3, 4,-s;0,s+1,10*s**4];
  217. p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3);
  218.     p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)];
  219. if norm(coeff(p1.*x-p3))>10*%eps then pause,end
  220. x=[1 1.5;2 1/3;sqrt(7) 8]';
  221. p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3);
  222.     p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)];
  223. if norm(coeff(p1.*x-p3))>10*%eps then pause,end
  224. if norm(coeff(x.*p1-p3))>10*%eps then pause,end
  225.  
  226. //
  227. //               real    complex
  228. //
  229. p1=[1+1.5*s;s**2];
  230. //
  231. if norm(coeff(p1'-[p1(1),p1(2)]))>10*%eps then pause,end
  232. if norm(coeff((-p1)+p1))>10*%eps then pause,end
  233. if norm(coeff((-p1')+p1'))>10*%eps then pause,end
  234. //
  235. x=[1+s**3; 4+%i];
  236. p3=p1(1)*x(1)+p1(2)*x(2);
  237. if norm(coeff(p1'*x-p3))>10*%eps then pause,end
  238. p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)];
  239. if norm(coeff(p1*conj(x')-p3))>10*%eps then pause,end
  240. //
  241. x=[1.5+%i;1/3];
  242. p3=p1(1)*x(1)+p1(2)*x(2);
  243. if norm(coeff(p1'*x-p3))>10*%eps then pause,end
  244. if norm(coeff(conj(x')*p1-p3))>10*%eps then pause,end
  245. p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)];
  246. if norm(coeff(p1*conj(x')-p3))>10*%eps then pause,end
  247. if norm(coeff(x*p1'-conj(p3')))>10*%eps then pause,end
  248. //
  249. x=4+%i;
  250. if norm(coeff(x*p1-[x*p1(1);x*p1(2)]))>10*%eps then pause,end
  251. if norm(coeff(p1*x-[x*p1(1);x*p1(2)]))>10*%eps then pause,end
  252. if norm(coeff(x*p1'-[x*p1(1),x*p1(2)]))>10*%eps then pause,end
  253. if norm(coeff(p1'*x-[x*p1(1),x*p1(2)]))>10*%eps then pause,end
  254. //
  255. x=[1+s**3; 4-3*%i];
  256. p3=[p1(1)*x(1);p1(2)*x(2)];
  257. if norm(coeff(p1.*x-p3))>10*%eps then pause,end
  258. x=[1.5+%i/5;1/3];
  259. p3=[p1(1)*x(1);p1(2)*x(2)];
  260. if norm(coeff(p1.*x-p3))>10*%eps then pause,end
  261. if norm(coeff(x.*p1-p3))>10*%eps then pause,end
  262. x=[1+s**3,4-%i];
  263. p3=[p1(1)*x(1),p1(2)*x(2)];
  264. if norm(coeff(p1'.*x-p3))>10*%eps then pause,end
  265. x=[1.5,1/3-3*%i];
  266. p3=[p1(1)*x(1),p1(2)*x(2)];
  267. if norm(coeff(p1'.*x-p3))>10*%eps then pause,end
  268. if norm(coeff(x.*p1'-p3))>10*%eps then pause,end
  269.  
  270. // matrices
  271. p1=[1+1.5*s,s**2, 0;1 s s+1];
  272. //
  273. if norm(coeff((-p1)+p1))>10*%eps then pause,end
  274. //
  275. x=[1,s+%i ;-1,2*s;2,0];
  276. p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),...
  277.         p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2);
  278.     p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),...
  279.         p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)];
  280. if norm(coeff(p1*x-p3))>10*%eps then pause,end
  281. //
  282. x=[1 1.5;2 1/3;%i-sqrt(7) 8];
  283. p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),...
  284.         p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2);
  285.     p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),...
  286.         p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)];
  287. if norm(coeff(p1*x-p3))>10*%eps then pause,end
  288. //
  289. x=5-2*%i;
  290. p3=[x*p1(1,1),x*p1(1,2),x*p1(1,3);
  291.     x*p1(2,1),x*p1(2,2),x*p1(2,3)];
  292.  
  293. if norm(coeff(p1*x-p3))>10*%eps then pause,end
  294. if norm(coeff(x*p1-p3))>10*%eps then pause,end
  295.  
  296. //
  297. x=[1+s**3, 4-3*%i,-s;0,s+1,10*s**4];
  298. p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3);
  299.     p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)];
  300. if norm(coeff(p1.*x-p3))>10*%eps then pause,end
  301. x=[1 1.5;2-%i/7, 1/3;sqrt(7) 8]';
  302. p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3);
  303.     p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)];
  304. if norm(coeff(p1.*x-p3))>10*%eps then pause,end
  305. if norm(coeff(x.*p1-p3))>10*%eps then pause,end
  306. //
  307. //                complex real
  308. //
  309. p1=[1+1.5*s;s**2+%i];
  310. //
  311. if norm(coeff(conj(p1')-[p1(1),p1(2)]))>10*%eps then pause,end
  312. if norm(coeff((-p1)+p1))>10*%eps then pause,end
  313. if norm(coeff((-conj(p1'))+conj(p1')))>10*%eps then pause,end
  314. //
  315. x=[1+s**3; 4];
  316. p3=p1(1)*x(1)+p1(2)*x(2);
  317. if norm(coeff(conj(p1')*x-p3))>10*%eps then pause,end
  318. p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)];
  319. if norm(coeff(p1*x'-p3))>10*%eps then pause,end
  320. //
  321. x=[1.5;1/3];
  322. p3=p1(1)*x(1)+p1(2)*x(2);
  323. if norm(coeff(conj(p1')*x-p3))>10*%eps then pause,end
  324. if norm(coeff(x'*p1-p3))>10*%eps then pause,end
  325. p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)];
  326. if norm(coeff(p1*x'-p3))>10*%eps then pause,end
  327. if norm(coeff(x*conj(p1')-conj(p3')))>10*%eps then pause,end
  328. //
  329. x=4;
  330. if norm(coeff(x*p1-[x*p1(1);x*p1(2)]))>10*%eps then pause,end
  331. if norm(coeff(p1*x-[x*p1(1);x*p1(2)]))>10*%eps then pause,end
  332. if norm(coeff(x*conj(p1')-[x*p1(1),x*p1(2)]))>10*%eps then pause,end
  333. if norm(coeff(conj(p1')*x-[x*p1(1),x*p1(2)]))>10*%eps then pause,end
  334. //
  335. x=[1+s**3; 4];
  336. p3=[p1(1)*x(1);p1(2)*x(2)];
  337. if norm(coeff(p1.*x-p3))>10*%eps then pause,end
  338. x=[1.5;1/3];
  339. p3=[p1(1)*x(1);p1(2)*x(2)];
  340. if norm(coeff(p1.*x-p3))>10*%eps then pause,end
  341. if norm(coeff(x.*p1-p3))>10*%eps then pause,end
  342. x=[1+s**3,4];
  343. p3=[p1(1)*x(1),p1(2)*x(2)];
  344. if norm(coeff(conj(p1').*x-p3))>10*%eps then pause,end
  345. x=[1.5,1/3];
  346. p3=[p1(1)*x(1),p1(2)*x(2)];
  347. if norm(coeff(conj(p1').*x-p3))>10*%eps then pause,end
  348. if norm(coeff(x.*conj(p1')-p3))>10*%eps then pause,end
  349.  
  350. //matrices
  351. p1=[1+1.5*s,s**2, 0;1 s s+1-%i/3];
  352. //
  353. if norm(coeff((-p1)+p1))>10*%eps then pause,end
  354. //
  355. x=[1,s ;-1,2*s;2,0];
  356. p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),...
  357.         p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2);
  358.     p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),...
  359.         p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)];
  360. if norm(coeff(p1*x-p3))>10*%eps then pause,end
  361. //
  362. x=[1 1.5;2 1/3;sqrt(7) 8];
  363. p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),...
  364.         p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2);
  365.     p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),...
  366.         p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)];
  367. if norm(coeff(p1*x-p3))>10*%eps then pause,end
  368. //
  369. x=5;
  370. p3=[x*p1(1,1),x*p1(1,2),x*p1(1,3);
  371.     x*p1(2,1),x*p1(2,2),x*p1(2,3)];
  372.  
  373. if norm(coeff(p1*x-p3))>10*%eps then pause,end
  374. if norm(coeff(x*p1-p3))>10*%eps then pause,end
  375.  
  376. //
  377. x=[1+s**3,4,-s;0,s+1,10*s**4];
  378. p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3);
  379.     p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)];
  380. if norm(coeff(p1.*x-p3))>10*%eps then pause,end
  381. x=[1 1.5;2, 1/3;sqrt(7) 8]';
  382. p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3);
  383.     p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)];
  384. if norm(coeff(p1.*x-p3))>10*%eps then pause,end
  385. if norm(coeff(x.*p1-p3))>10*%eps then pause,end
  386. //
  387. //                complex complex
  388. //
  389. p1=[1+1.5*s;s**2+%i];
  390. //
  391. if norm(coeff(conj(p1')-[p1(1),p1(2)]))>10*%eps then pause,end
  392. if norm(coeff((-p1)+p1))>10*%eps then pause,end
  393. if norm(coeff((-conj(p1'))+conj(p1')))>10*%eps then pause,end
  394. //
  395. x=[1+s**3; 4-%i];
  396. p3=p1(1)*x(1)+p1(2)*x(2);
  397. if norm(coeff(conj(p1')*x-p3))>10*%eps then pause,end
  398. p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)];
  399. if norm(coeff(p1*conj(x')-p3))>10*%eps then pause,end
  400. //
  401. x=[1.5+%i/5;1/3];
  402. p3=p1(1)*x(1)+p1(2)*x(2);
  403. if norm(coeff(conj(p1')*x-p3))>10*%eps then pause,end
  404. if norm(coeff(conj(x')*p1-p3))>10*%eps then pause,end
  405. p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)];
  406. if norm(coeff(p1*conj(x')-p3))>10*%eps then pause,end
  407. if norm(coeff(x*conj(p1')-conj(p3')))>10*%eps then pause,end
  408. //produit d'un vecteur de polynome par un scalaire
  409. x=4+%i/7;
  410. if norm(coeff(x*p1-[x*p1(1);x*p1(2)]))>10*%eps then pause,end
  411. if norm(coeff(p1*x-[x*p1(1);x*p1(2)]))>10*%eps then pause,end
  412. if norm(coeff(x*conj(p1')-[x*p1(1),x*p1(2)]))>10*%eps then pause,end
  413. if norm(coeff(conj(p1')*x-[x*p1(1),x*p1(2)]))>10*%eps then pause,end
  414. //
  415. x=[1+s**3; 4-%i];
  416. p3=[p1(1)*x(1);p1(2)*x(2)];
  417. if norm(coeff(p1.*x-p3))>10*%eps then pause,end
  418. x=[1.5+2*%i;1/3];
  419. p3=[p1(1)*x(1);p1(2)*x(2)];
  420. if norm(coeff(p1.*x-p3))>10*%eps then pause,end
  421. if norm(coeff(x.*p1-p3))>10*%eps then pause,end
  422. x=[1+s**3+%i,4-%i];
  423. p3=[p1(1)*x(1),p1(2)*x(2)];
  424. if norm(coeff(conj(p1').*x-p3))>10*%eps then pause,end
  425. x=[1.5+3*%i,1/3];
  426. p3=[p1(1)*x(1),p1(2)*x(2)];
  427. if norm(coeff(conj(p1').*x-p3))>10*%eps then pause,end
  428. if norm(coeff(x.*conj(p1')-p3))>10*%eps then pause,end
  429.  
  430. //matrices
  431. p1=[1+1.5*s,s**2, 0;1 s s+1-%i/3];
  432. //
  433. if norm(coeff((-p1)+p1))>10*%eps then pause,end
  434. //
  435. x=[1-%i,s ;-1,2*s;2,0+%i*s**4];
  436. p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),...
  437.         p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2);
  438.     p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),...
  439.         p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)];
  440. if norm(coeff(p1*x-p3))>10*%eps then pause,end
  441. //
  442. x=[1 1.5+5*%i;2 1/3;%i-sqrt(7) 8];
  443. p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),...
  444.         p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2);
  445.     p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),...
  446.         p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)];
  447. if norm(coeff(p1*x-p3))>10*%eps then pause,end
  448. //
  449. x=5+8*%i;
  450. p3=[x*p1(1,1),x*p1(1,2),x*p1(1,3);
  451.     x*p1(2,1),x*p1(2,2),x*p1(2,3)];
  452.  
  453. if norm(coeff(p1*x-p3))>10*%eps then pause,end
  454. if norm(coeff(x*p1-p3))>10*%eps then pause,end
  455.  
  456. //
  457. x=[1+s**3,4+10*%i,-s;0,s+1,10*s**4+%i*s**3];
  458. p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3);
  459.     p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)];
  460. if norm(coeff(p1.*x-p3))>10*%eps then pause,end
  461. x=[1 1.5;2, 1/3;sqrt(7)/%i, 8]';
  462. p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3);
  463.     p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)];
  464. if norm(coeff(p1.*x-p3))>10*%eps then pause,end
  465. if norm(coeff(x.*p1-p3))>10*%eps then pause,end
  466.  
  467. //
  468. //
  469. //
  470. //        real real
  471. z=poly(0,'z');p1=[1+3*z;z;2*z;z*4];p2=[0*z 1+z z-1 -z];p3=[p1 p2'];
  472. pp1=p1;pp2=p2;pp3=p3;
  473. pp1(2)=pp2(1);if pp1(2) <> pp2(1) then pause,end
  474. pp2(3)=pp1(4);if pp2(3) <> pp1(4) then pause,end
  475. pp3(2,1)=pp2(1);pp3(3,2)=pp1(4);if pp3 <> [pp1 pp2'] then pause,end
  476. pp1(1:4)=pp2';if pp1<> pp2' then pause,end
  477. pp1((1:4)')=pp2';if pp1<> pp2' then pause,end
  478. pp1=p1;pp2=p2;
  479. pp1(6)=-8;if pp1 <> [p1;0;-8] then pause,end
  480. pp2(7)=+z**3;,if pp2 <> [p2,0,0,+z**3;] then pause,end
  481. pp1=p1;pp2=p2;
  482. pp1(5:8)=p1;if pp1 <> [p1;p1] then pause,end
  483. pp2(6:9)=p2;if pp2 <> [p2 0 p2] then pause,end
  484. pp1=p1;pp2=p2;
  485. pp1(:)=p2';if pp1 <> p2' then pause,end
  486. pp2(:)=p1';if pp2 <> p1' then pause,end
  487. pp1=p1;pp2=p2;
  488. pp1(8:-1:5)=p1;if pp1 <> [p1;p1(4:-1:1)] then pause,end
  489. pp2(8:-1:5)=p2;if pp2 <> [p2 p2(4:-1:1)] then pause,end
  490. pp3=p3;
  491. pp3(1:4,1)=p2';if pp3 <> [p2' p2'] then pause,end
  492. pp3(1:4,2)=p1;if pp3 <> [p2' p1] then pause,end
  493. pp3=p3;
  494. pp3(:,1)=p2';if pp3 <> [p2' p2'] then pause,end
  495. pp3(:,2)=p1;if pp3 <> [p2' p1] then pause,end
  496. pp3(:,:)=p3;if pp3 <> p3 then pause,end
  497. pp3=p3;
  498. pp3(:,4)=p1;if pp3 <> [p3 [0;0;0;0] p1] then pause,end
  499. pp3=p3;
  500. pp3(6:9,:)=p3;if pp3 <> [p3;[0 0];p3] then pause,end
  501. //
  502. p1=[1+3*s;s;2*s;s*4];p2=[0*s-2.5*%i, 1+s, s-1+3*%i ,-s];p3=[p1 conj(p2')];
  503. pp1=p1;pp2=p2;pp3=p3;
  504. pp1(2)=pp2(1);if pp1(2) <> pp2(1) then pause,end
  505. pp2(3)=pp1(4);if pp2(3) <> pp1(4) then pause,end
  506. pp3(2,1)=pp2(1);pp3(3,2)=pp1(4);if pp3 <> [pp1 conj(pp2')] then pause,end
  507. pp1(1:4)=conj(pp2');if pp1<> conj(pp2') then pause,end
  508. pp1((1:4)')=conj(pp2');if pp1<> conj(pp2') then pause,end
  509. pp1=p1;pp2=p2;
  510. pp1(6)=-8;if pp1 <> [p1;0;-8] then pause,end
  511. pp2(7)=+s**3;,if pp2 <> [p2,0,0,+s**3;] then pause,end
  512. pp1=p1;pp2=p2;
  513. pp1(5:8)=p1;if pp1 <> [p1;p1] then pause,end
  514. pp2(6:9)=p2;if pp2 <> [p2 0 p2] then pause,end
  515. pp1=p1;pp2=p2;
  516. pp1(:)=conj(p2');if pp1 <> conj(p2') then pause,end
  517. pp2(:)=p1';if norm(coeff(pp2-p1'))>10*%eps then pause,end
  518. pp1=p1;pp2=p2;
  519. pp1(8:-1:5)=p1;if pp1 <> [p1;p1(4:-1:1)] then pause,end
  520. pp2(8:-1:5)=p2;if pp2 <> [p2 p2(4:-1:1)] then pause,end
  521. pp3=p3;
  522. pp3(1:4,1)=conj(p2');if pp3 <> [conj(p2') conj(p2')] then pause,end
  523. pp3(1:4,2)=p1;if pp3 <> [conj(p2') p1] then pause,end
  524. pp3=p3;
  525. pp3(:,1)=conj(p2');if pp3 <> [conj(p2') conj(p2')] then pause,end
  526. pp3(:,2)=p1;if pp3 <> [conj(p2') p1] then pause,end
  527. pp3(:,:)=p3;if pp3 <> p3 then pause,end
  528. pp3=p3;
  529. pp3(:,4)=p1;if pp3 <> [p3 [0;0;0;0] p1] then pause,end
  530. pp3=p3;
  531. pp3(6:9,:)=p3;if pp3 <> [p3;[0 0];p3] then pause,end
  532.  
  533. //
  534. p1=[1+3*s;s-%i;2*s;s*4+3*%i*s**2];p2=[0*s 1+s s-1 -s];p3=[p1 p2'];
  535. pp1=p1;pp2=p2;pp3=p3;
  536. pp1(2)=pp2(1);if norm(coeff(pp1(2)-pp2(1)))>10*%eps then pause,end
  537. pp2(3)=pp1(4);if norm(coeff(pp2(3)-pp1(4)))>10*%eps then pause,end
  538. pp3(2,1)=pp2(1);pp3(3,2)=pp1(4);if pp3 <> [pp1 conj(pp2')] then pause,end
  539. pp1(1:4)=pp2';if pp1<> pp2' then pause,end
  540. pp1((1:4)')=pp2';if pp1<> pp2' then pause,end
  541. pp1=p1;pp2=p2;
  542. pp1(6)=-8;if pp1 <> [p1;0;-8] then pause,end
  543. pp2(7)=+s**3;,if pp2 <> [p2,0,0,+s**3] then pause,end
  544. pp1=p1;pp2=p2;
  545. pp1(5:8)=p1;if pp1 <> [p1;p1] then pause,end
  546. pp2(6:9)=p2;if pp2 <> [p2 0 p2] then pause,end
  547. pp1=p1;pp2=p2;
  548. pp1(:)=p2';if norm(coeff(pp1-p2'))>10*%eps then pause,end
  549. pp2(:)=p1';if norm(coeff(pp2-p1'))>10*%eps then pause,end
  550. pp1=p1;pp2=p2;
  551. pp1(8:-1:5)=p1;if pp1 <> [p1;p1(4:-1:1)] then pause,end
  552. pp2(8:-1:5)=p2;if pp2 <> [p2 p2(4:-1:1)] then pause,end
  553. pp3=p3;
  554. pp3(1:4,1)=p2';if norm(coeff(pp3-[p2' p2']))>10*%eps then pause,end
  555. pp3(1:4,2)=p1;if norm(coeff(pp3-[p2' p1]))>10*%eps then pause,end
  556. pp3=p3;
  557. pp3(:,1)=p2';if norm(coeff(pp3-[p2' p2']))>10*%eps then pause,end
  558. pp3(:,2)=p1;if norm(coeff(pp3-[p2' p1]))>10*%eps then pause,end
  559. pp3(:,:)=p3;if pp3 <> p3 then pause,end
  560. pp3=p3;
  561. pp3(:,4)=p1;if pp3 <> [p3 [0;0;0;0] p1] then pause,end
  562. pp3=p3;
  563. pp3(6:9,:)=p3;if pp3 <> [p3;[0 0];p3] then pause,end
  564. p1=[1+3*s;s;2*s;s*4];p2=[0*s-2.5*%i, 1+s, s-1+3*%i ,-s];p3=[p1 conj(p2')];
  565. pp1=p1;pp2=p2;pp3=p3;
  566. pp1(2)=pp2(1);if pp1(2) <> pp2(1) then pause,end
  567. pp2(3)=pp1(4);if pp2(3) <> pp1(4) then pause,end
  568. pp3(2,1)=pp2(1);pp3(3,2)=pp1(4);if pp3 <> [pp1 conj(pp2')] then pause,end
  569. pp1(1:4)=conj(pp2');if pp1<> conj(pp2') then pause,end
  570. pp1((1:4)')=conj(pp2');if pp1<> conj(pp2') then pause,end
  571. pp1=p1;pp2=p2;
  572. pp1(6)=-8;if pp1 <> [p1;0;-8] then pause,end
  573. pp2(7)=+s**3;,if pp2 <> [p2,0,0,+s**3] then pause,end
  574. pp1=p1;pp2=p2;
  575. pp1(5:8)=p1;if pp1 <> [p1;p1] then pause,end
  576. pp2(6:9)=p2;if pp2 <> [p2 0 p2] then pause,end
  577. pp1=p1;pp2=p2;
  578. pp1(:)=conj(p2');if pp1 <> conj(p2') then pause,end
  579. pp2(:)=p1';if norm(coeff(pp2-p1'))>10*%eps then pause,end
  580. pp1=p1;pp2=p2;
  581. pp1(8:-1:5)=p1;if pp1 <> [p1;p1(4:-1:1)] then pause,end
  582. pp2(8:-1:5)=p2;if pp2 <> [p2 p2(4:-1:1)] then pause,end
  583. pp3=p3;
  584. pp3(1:4,1)=conj(p2');if pp3 <> [conj(p2') conj(p2')] then pause,end
  585. pp3(1:4,2)=p1;if pp3 <> [conj(p2') p1] then pause,end
  586. pp3=p3;
  587. pp3(:,1)=conj(p2');if pp3 <> [conj(p2') conj(p2')] then pause,end
  588. pp3(:,2)=p1;if pp3 <> [conj(p2') p1] then pause,end
  589. pp3(:,:)=p3;if pp3 <> p3 then pause,end
  590. pp3=p3;
  591. pp3(:,4)=p1;if pp3 <> [p3 [0;0;0;0] p1] then pause,end
  592. pp3=p3;
  593. pp3(6:9,:)=p3;if pp3 <> [p3;[0 0];p3] then pause,end
  594.  
  595. //
  596. p1=[1+3*s;s+%i*s**3;2*s;s*4+%i];p2=[0*s-2.5*%i,1+s,s-1+3*%i,-s];
  597. p3=[p1 conj(p2')];
  598. pp1=p1;pp2=p2;pp3=p3;
  599. pp1(2)=pp2(1);if pp1(2) <> pp2(1) then pause,end
  600. pp2(3)=pp1(4);if pp2(3) <> pp1(4) then pause,end
  601. pp3(2,1)=pp2(1);pp3(3,2)=pp1(4);if pp3 <> [pp1 conj(pp2')] then pause,end
  602. pp1(1:4)=conj(pp2');if pp1<> conj(pp2') then pause,end
  603. pp1((1:4)')=conj(pp2');if pp1<> conj(pp2') then pause,end
  604. pp1=p1;pp2=p2;
  605. pp1(6)=-8;if pp1 <> [p1;0;-8] then pause,end
  606. pp2(7)=+s**3;,if pp2 <> [p2,0,0,+s**3] then pause,end
  607. pp1=p1;pp2=p2;
  608. pp1(5:8)=p1;if pp1 <> [p1;p1] then pause,end
  609. pp2(6:9)=p2;if pp2 <> [p2 0 p2] then pause,end
  610. pp1=p1;pp2=p2;
  611. pp1(:)=conj(p2');if pp1 <> conj(p2') then pause,end
  612. pp2(:)=p1';if norm(coeff(pp2-p1'))>10*%eps then pause,end
  613. pp1=p1;pp2=p2;
  614. pp1(8:-1:5)=p1;if pp1 <> [p1;p1(4:-1:1)] then pause,end
  615. pp2(8:-1:5)=p2;if pp2 <> [p2 p2(4:-1:1)] then pause,end
  616. pp3=p3;
  617. pp3(1:4,1)=conj(p2');if pp3 <> [conj(p2') conj(p2')] then pause,end
  618. pp3(1:4,2)=p1;if pp3 <> [conj(p2') p1] then pause,end
  619. pp3=p3;
  620. pp3(:,1)=conj(p2');if pp3 <> [conj(p2') conj(p2')] then pause,end
  621. pp3(:,2)=p1;if pp3 <> [conj(p2') p1] then pause,end
  622. pp3(:,:)=p3;if pp3 <> p3 then pause,end
  623. pp3=p3;
  624. pp3(:,4)=p1;if pp3 <> [p3 [0;0;0;0] p1] then pause,end
  625. pp3=p3;
  626. pp3(6:9,:)=p3;if pp3 <> [p3;[0 0];p3] then pause,end
  627. //
  628. //
  629. //real case
  630. p11=1+3*s;p12=s;p13=2*s;p14=s*4;p1=[p11;p12;p13;p14];
  631. p21=0*s;p22=1+s;p23=s-1;p24=-s;p2=[p21 p22 p23 p24];
  632. p3=[p1 p2'];
  633. if p1(1) <> p11 then pause,end
  634. if p1(4) <> p14 then pause,end
  635. if p2(2) <> p22 then pause,end
  636. if p2(3) <> p23 then pause,end
  637. if p1([1 3]) <> [p11;p13] then pause,end
  638. if p1([1;3]) <> p1([1 3]) then pause,end
  639. if p2([2 4]) <> [p22 p24] then pause,end
  640. if p2([2;4]) <> p2([2 4]) then pause,end
  641. if p1(:) <> p1 then pause,end
  642. if p2(:) <> p2' then pause,end
  643. if p3(1) <> p1(1) then pause,end
  644. if p3(8) <> p2(4) then pause,end
  645. if p3(3) <> p1(3) then pause,end
  646. if p3(5) <> p2(1) then pause,end
  647. if p3(1,1) <> p1(1) then pause,end
  648. if p3(4,2) <> p2(4) then pause,end
  649. if p3(3,2) <> p2(3) then pause,end
  650. if p3([1 3],1) <> p1([1 3]) then pause,end
  651. if p3([1;3],1) <> p1([1 3]) then pause,end
  652. if p3([2 4],[2 1]) <> [p2([2 4])' p1([2 4])] then pause,end
  653. if p3(:,1) <> p1 then pause,end
  654. if p3(:,2) <> p2' then pause,end
  655. if p3(1,:) <> [p1(1) p2(1)] then pause,end
  656. if p3([1 4],:) <> [p1([1 4]) p2([1 4])'] then pause,end
  657. if p3(:,:) <> p3 then pause,end
  658. //
  659. p11=1+3*s+%i;p12=s+%i*s**3;p13=2*s;p14=s*4;p1=[p11;p12;p13;p14];
  660. p21=%i+0*s;p22=1+s;p23=s-1;p24=-s+%i*s**2;p2=[p21 p22 p23 p24];
  661. p3=[p1 conj(p2')];
  662. if p1(1) <> p11 then pause,end
  663. if norm(coeff(p1(4)-p14))>10*%eps then pause,end
  664. if norm(coeff(p2(2)- p22 ))>10*%eps then pause,end
  665. if norm(coeff(p2(3)- p23 ))>10*%eps then pause,end
  666. if norm(coeff(p1([1 3])- [p11;p13] ))>10*%eps then pause,end
  667. if norm(coeff(p1([1;3])- p1([1 3]) ))>10*%eps then pause,end
  668. if norm(coeff(p2([2 4])- [p22 p24] ))>10*%eps then pause,end
  669. if norm(coeff(p2([2;4])- p2([2 4]) ))>10*%eps then pause,end
  670. if norm(coeff(p1(:)- p1 ))>10*%eps then pause,end
  671. if norm(coeff(p2(:)- conj(p2)' ))>10*%eps then pause,end
  672. if norm(coeff(p3(1)- p1(1) ))>10*%eps then pause,end
  673. if norm(coeff(p3(8)- p2(4) ))>10*%eps then pause,end
  674. if norm(coeff(p3(3)- p1(3) ))>10*%eps then pause,end
  675. if norm(coeff(p3(5)- p2(1) ))>10*%eps then pause,end
  676. if norm(coeff(p3(1,1)- p1(1) ))>10*%eps then pause,end
  677. if norm(coeff(p3(4,2)- p2(4) ))>10*%eps then pause,end
  678. if norm(coeff(p3(3,2)- p2(3) ))>10*%eps then pause,end
  679. if norm(coeff(p3([1 3],1)- p1([1 3]) ))>10*%eps then pause,end
  680. if norm(coeff(p3([1;3],1)- p1([1 3]) ))>10*%eps then pause,end
  681. if norm(coeff(p3([2 4],[2 1])-[conj(p2([2 4])') p1([2 4])]))>10*%eps
  682.  then pause,end
  683. if norm(coeff(p3(:,1)- p1 ))>10*%eps then pause,end
  684. if norm(coeff(p3(:,2)- conj(p2') ))>10*%eps then pause,end
  685. if norm(coeff(p3(1,:)- [p1(1) p2(1)] ))>10*%eps then pause,end
  686. if norm(coeff(p3([1 4],:)- [p1([1 4]) conj(p2([1 4])')] ))>10*%eps 
  687.   then pause,end
  688. if norm(coeff(p3(:,:)- p3 ))>10*%eps then pause,end
  689.